#ifndef URLITEMWIDGET_H
#define URLITEMWIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QNetworkAccessManager>
#include "clipboardItem.h"

class UrlItemWidget : public QWidget {
    Q_OBJECT

public:
    explicit UrlItemWidget(const ClipboardItem& item, QWidget *parent = nullptr);
    // 添加一个方法获取存储的 ClipboardItem
    ClipboardItem getItem() const;

signals:
    void copyClicked();
    void openClicked();
    void deleteClicked();  // 删除 URL 的信号
    void getDetailDoubleCliked();
    void favoriteClicked();

private slots:
    void onCopyClicked();
    void onOpenClicked();  // 处理打开 URL 的槽
    void onDeleteClicked();  // 处理删除 URL 的槽
    void handleIconLoaded(); // 获取 icon 的槽
    void onGetDetailDoubleCliked();
    void onFavoriteClicked();

protected:
    bool eventFilter(QObject* obj, QEvent* event) override;  // 事件过滤器

private:
    ClipboardItem item;
    QLabel *urlLabel;  // 显示 URL 的标签
    QLabel *urlIconLabel; // 显示网站图标的标签
    QLabel *titleLabel;            // 文本标签
    QPushButton *copyButton;      // 复制按钮
    QPushButton *openButton;      // 打开按钮
    QPushButton *deleteButton;    // 删除按钮
    QPushButton *favoriteButton;  // 收藏按钮
    QVBoxLayout *mainLayout;      // 主垂直布局
    QHBoxLayout *buttonLayout;    // 按钮的水平布局
    QNetworkAccessManager *manager; // 网络访问管理器
    QHBoxLayout *favoriteTextLayout;  // 添加这一行
    void updateFavoriteButtonStyle();  // 添加这一行
};

#endif // URLITEMWIDGET_H
